home *** CD-ROM | disk | FTP | other *** search
/ GameStar 2006 February / Gamestar_81_2006-02_dvd.iso / Red Shark / Common / BaseAIController.script < prev    next >
Text File  |  2001-09-25  |  2KB  |  90 lines

  1. //-------------------------------------------------------------------
  2. //
  3. //  This code is copyright 2001 by G5 Software.
  4. //  Any unauthorized usage, either in part or in whole of this code
  5. //  is strictly prohibited. Violators WILL be prosecuted to the
  6. //  maximum extent allowed by law.
  7. //
  8. //-------------------------------------------------------------------
  9.  
  10. //
  11. // *** mission AI controller ***
  12. //
  13.  
  14. class CBaseAIController
  15. {
  16.   //
  17.   // *** virtual functions
  18.   //
  19.   // overwrite the following 2 functions to receive the entrance of objects to nav points
  20.  
  21.   // called when object entered active area
  22.   void OnObjectEnterArea( int _NavPointIndex, string _NavPointName, string _ObjectID)
  23.   {
  24.     Core_LogMessage("GameObject <" + _ObjectID + "> entered activate area [" + _NavPointName + "]");
  25.   };
  26.  
  27.   // called whenobject leaved active area
  28.   void OnObjectLeaveArea( int _NavPointIndex, string _NavPointName, string _ObjectID)
  29.   {
  30.     Core_LogMessage("GameObject <" + _ObjectID + "> left activate area [" + _NavPointName + "]");
  31.   };
  32.  
  33.   // called on initialization
  34.   void Init( int _GameTime) {};
  35.  
  36.   // called every synchronization takt
  37.   void Update( int _GameTime) {};
  38.  
  39.  
  40.   // *** Data & Functionality
  41.  
  42.   array ActivatePointCenterList = array();
  43.   array ActivatePointRadiusList = array();
  44.   array ActivatePointNameList = array();
  45.  
  46.   void OnAddNavPoint( string _NavPointName, matrix _NavPointMatrix, float _Radius)
  47.   {
  48.     // insert point to lists
  49.     ActivatePointCenterList.addElement( Core_GetMatrixOrigin( _NavPointMatrix));
  50.     ActivatePointRadiusList.addElement( _Radius);
  51.     ActivatePointNameList.addElement( _NavPointName);
  52.  
  53.     // reload controller
  54.     LoadActivatePoints();
  55.   }
  56.  
  57.   vector GetNavPointByIndex( int _Index)
  58.   {
  59.     return ActivatePointCenterList[_Index];
  60.   }
  61.  
  62.   vector GetNavPointByName( string _Name)
  63.   {
  64.     for ( int i = 0; i < ActivatePointCenterList.size(); i = i + 1)
  65.     {
  66.       if ( ActivatePointNameList[i] == _Name)
  67.       {
  68.         return ActivatePointCenterList[i];
  69.       };
  70.     };
  71.   }
  72.  
  73.   float GetNavPointRadiusByIndex( int _Index)
  74.   {
  75.     return ActivatePointRadiusList[_Index];
  76.   }
  77.  
  78.   float GetNavPointRadiusByName( string _Name)
  79.   {
  80.     for ( int i = 0; i < ActivatePointCenterList.size(); i = i + 1)
  81.     {
  82.       if ( ActivatePointNameList[i] == _Name)
  83.       {
  84.         return ActivatePointRadiusList[i];
  85.       };
  86.     };
  87.   }
  88.  
  89. }
  90.